#include<sys/wait.h>
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<sys/types.h>

int main(){
    pid_t pid;
    int status;

    // 创建子进程
    pid = fork();

    // 检查fork调用是否失败
    if(pid < 0){
        perror("fork failed");
        exit(1);
    }

    // 子进程执行部分
    if(pid == 0){
        sleep(1);
        exit(2);
    }

    // 父进程执行部分
    if(pid > 0){
        // 等待子进程结束
        waitpid(pid, &status, 0);
        // 打印子进程的退出状态
        printf("退出状态为: %d\n", WIFEXITED(status));
        // 打印子进程的退出码
        printf("退出码为%d\n", WEXITSTATUS(status));
        exit(0);
    }
}